﻿2026-06-04T14:14:33.6749885Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T14:14:33.6751413Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T14:14:33.6773386Z shell: /usr/bin/bash -e {0}
2026-06-04T14:14:33.6774568Z ##[endgroup]
2026-06-04T14:14:33.6994707Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T14:14:33.6999034Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7003613Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T14:14:33.7007721Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T14:14:33.7012739Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7017734Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7022546Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T14:14:33.7026307Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T14:14:33.7031130Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7036684Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7041684Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T14:14:33.7045509Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T14:14:33.7048881Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T14:14:33.7052374Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T14:14:33.7068353Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7073486Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:14:33.7077486Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T14:14:33.7080890Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T14:14:33.7082730Z 
2026-06-04T14:14:33.7083206Z # Requirement quality review
2026-06-04T14:14:33.7084014Z 
2026-06-04T14:14:33.7085040Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T14:14:33.7087709Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T14:14:33.7090770Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T14:14:33.7093145Z this command's output. Your task is the rubric items below.
2026-06-04T14:14:33.7094620Z 
2026-06-04T14:14:33.7095046Z ## Rubric
2026-06-04T14:14:33.7095605Z 
2026-06-04T14:14:33.7096874Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T14:14:33.7100358Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T14:14:33.7103049Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T14:14:33.7105304Z - **active-voice** — clear subject and active verb.
2026-06-04T14:14:33.7106487Z 
2026-06-04T14:14:33.7107586Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T14:14:33.7109850Z clear concerns.
2026-06-04T14:14:33.7110468Z 
2026-06-04T14:14:33.7110884Z ## Requirements
2026-06-04T14:14:33.7112012Z 
2026-06-04T14:14:33.7112435Z ### REQ-ARCH-1
2026-06-04T14:14:33.7113581Z - Title: Many small acyclically-layered crates
2026-06-04T14:14:33.7115091Z - Required stages: impl
2026-06-04T14:14:33.7115862Z 
2026-06-04T14:14:33.7116275Z ### REQ-ARCH-2
2026-06-04T14:14:33.7117616Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T14:14:33.7119409Z - Required stages: impl
2026-06-04T14:14:33.7120136Z 
2026-06-04T14:14:33.7120551Z ### REQ-ARCH-3
2026-06-04T14:14:33.7122216Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T14:14:33.7124296Z - Required stages: impl, unit
2026-06-04T14:14:33.7125132Z 
2026-06-04T14:14:33.7125535Z ### REQ-ARCH-4
2026-06-04T14:14:33.7126919Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T14:14:33.7128768Z - Required stages: impl, unit
2026-06-04T14:14:33.7129816Z 
2026-06-04T14:14:33.7130389Z ### REQ-DAEMON-1
2026-06-04T14:14:33.7131773Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T14:14:33.7133607Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7134514Z 
2026-06-04T14:14:33.7134922Z ### REQ-DAEMON-2
2026-06-04T14:14:33.7136133Z - Title: Broker/brain split for seamless self-update
2026-06-04T14:14:33.7137745Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7138650Z 
2026-06-04T14:14:33.7139070Z ### REQ-DAEMON-3
2026-06-04T14:14:33.7140767Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T14:14:33.7142716Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7143612Z 
2026-06-04T14:14:33.7144036Z ### REQ-DAEMON-4
2026-06-04T14:14:33.7145172Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T14:14:33.7146667Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7147565Z 
2026-06-04T14:14:33.7147966Z ### REQ-STORE-1
2026-06-04T14:14:33.7153799Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T14:14:33.7161972Z - Required stages: impl, unit
2026-06-04T14:14:33.7162840Z 
2026-06-04T14:14:33.7163280Z ### REQ-MANIFEST-1
2026-06-04T14:14:33.7164786Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T14:14:33.7166756Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7167689Z 
2026-06-04T14:14:33.7168114Z ### REQ-SEAM-SPAWN
2026-06-04T14:14:33.7169271Z - Title: spawn-session seam
2026-06-04T14:14:33.7170821Z - Required stages: impl, unit
2026-06-04T14:14:33.7171644Z 
2026-06-04T14:14:33.7172090Z ### REQ-SEAM-POSTSPAWN
2026-06-04T14:14:33.7173379Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T14:14:33.7174962Z - Required stages: impl, unit
2026-06-04T14:14:33.7175791Z 
2026-06-04T14:14:33.7176215Z ### REQ-SEAM-PSYCHE
2026-06-04T14:14:33.7177475Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T14:14:33.7179128Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7180448Z 
2026-06-04T14:14:33.7180882Z ### REQ-SEAM-HISTORY
2026-06-04T14:14:33.7182391Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T14:14:33.7184330Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7185232Z 
2026-06-04T14:14:33.7185652Z ### REQ-SEAM-ACTIVITY
2026-06-04T14:14:33.7187164Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T14:14:33.7189094Z - Required stages: impl, unit
2026-06-04T14:14:33.7189981Z 
2026-06-04T14:14:33.7190409Z ### REQ-SEAM-INJECT
2026-06-04T14:14:33.7191785Z - Title: inject-input methods configurable per activity-state
2026-06-04T14:14:33.7193541Z - Required stages: impl, unit
2026-06-04T14:14:33.7194363Z 
2026-06-04T14:14:33.7194785Z ### REQ-SEAM-RESUME
2026-06-04T14:14:33.7196272Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T14:14:33.7198194Z - Required stages: impl, unit
2026-06-04T14:14:33.7199390Z 
2026-06-04T14:14:33.7199835Z ### REQ-SEAM-CAPABILITY
2026-06-04T14:14:33.7201214Z - Title: Hostable endpoint-types capability declaration
2026-06-04T14:14:33.7202881Z - Required stages: impl, unit
2026-06-04T14:14:33.7203711Z 
2026-06-04T14:14:33.7204147Z ### REQ-SEAM-UPDATE
2026-06-04T14:14:33.7205540Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T14:14:33.7207318Z - Required stages: impl, unit
2026-06-04T14:14:33.7208170Z 
2026-06-04T14:14:33.7208569Z ### REQ-API-1
2026-06-04T14:14:33.7209982Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T14:14:33.7211830Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7212718Z 
2026-06-04T14:14:33.7213125Z ### REQ-API-2
2026-06-04T14:14:33.7214681Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T14:14:33.7216793Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7217699Z 
2026-06-04T14:14:33.7218117Z ### REQ-API-3
2026-06-04T14:14:33.7219348Z - Title: commune/signoff are file-drops, not commands
2026-06-04T14:14:33.7220984Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7221891Z 
2026-06-04T14:14:33.7222308Z ### REQ-START-1
2026-06-04T14:14:33.7223811Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T14:14:33.7225814Z - Required stages: impl, unit
2026-06-04T14:14:33.7226638Z 
2026-06-04T14:14:33.7227056Z ### REQ-START-2
2026-06-04T14:14:33.7228466Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T14:14:33.7230167Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7231087Z 
2026-06-04T14:14:33.7231492Z ### REQ-START-3
2026-06-04T14:14:33.7232878Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T14:14:33.7234743Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7235642Z 
2026-06-04T14:14:33.7236058Z ### REQ-START-4
2026-06-04T14:14:33.7237254Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T14:14:33.7238857Z - Required stages: impl, unit
2026-06-04T14:14:33.7239738Z 
2026-06-04T14:14:33.7240135Z ### REQ-EP-1
2026-06-04T14:14:33.7241279Z - Title: Day-one endpoint types; open type system
2026-06-04T14:14:33.7242855Z - Required stages: impl, unit
2026-06-04T14:14:33.7243691Z 
2026-06-04T14:14:33.7244096Z ### REQ-EP-2
2026-06-04T14:14:33.7245429Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T14:14:33.7247232Z - Required stages: impl, unit
2026-06-04T14:14:33.7248070Z 
2026-06-04T14:14:33.7248483Z ### REQ-EP-3
2026-06-04T14:14:33.7249961Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T14:14:33.7251910Z - Required stages: impl, unit
2026-06-04T14:14:33.7252745Z 
2026-06-04T14:14:33.7253148Z ### REQ-EP-4
2026-06-04T14:14:33.7254381Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T14:14:33.7256047Z - Required stages: impl, unit
2026-06-04T14:14:33.7256887Z 
2026-06-04T14:14:33.7257296Z ### REQ-EP-5
2026-06-04T14:14:33.7261649Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T14:14:33.7267650Z - Required stages: 
2026-06-04T14:14:33.7268337Z 
2026-06-04T14:14:33.7268745Z ### REQ-INST-1
2026-06-04T14:14:33.7270106Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T14:14:33.7271831Z - Required stages: 
2026-06-04T14:14:33.7272480Z 
2026-06-04T14:14:33.7272896Z ### REQ-INST-2
2026-06-04T14:14:33.7274003Z - Title: Per-node files, synced Psyche mind
2026-06-04T14:14:33.7275478Z - Required stages: impl, unit
2026-06-04T14:14:33.7276309Z 
2026-06-04T14:14:33.7276718Z ### REQ-INST-3
2026-06-04T14:14:33.7277962Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T14:14:33.7279689Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7280592Z 
2026-06-04T14:14:33.7281005Z ### REQ-INST-4
2026-06-04T14:14:33.7282603Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T14:14:33.7284505Z - Required stages: impl, unit
2026-06-04T14:14:33.7285345Z 
2026-06-04T14:14:33.7285748Z ### REQ-INST-5
2026-06-04T14:14:33.7287165Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T14:14:33.7289058Z - Required stages: impl, unit
2026-06-04T14:14:33.7289945Z 
2026-06-04T14:14:33.7290363Z ### REQ-INST-6
2026-06-04T14:14:33.7291831Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T14:14:33.7293768Z - Required stages: 
2026-06-04T14:14:33.7294416Z 
2026-06-04T14:14:33.7294830Z ### REQ-INST-7
2026-06-04T14:14:33.7296023Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T14:14:33.7297625Z - Required stages: impl, unit
2026-06-04T14:14:33.7298468Z 
2026-06-04T14:14:33.7298876Z ### REQ-INST-8
2026-06-04T14:14:33.7300191Z - Title: Remote-control mode distinct from local operation
2026-06-04T14:14:33.7301926Z - Required stages: impl, unit
2026-06-04T14:14:33.7302762Z 
2026-06-04T14:14:33.7303186Z ### REQ-INST-9
2026-06-04T14:14:33.7304645Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T14:14:33.7306600Z - Required stages: impl, unit
2026-06-04T14:14:33.7307430Z 
2026-06-04T14:14:33.7307838Z ### REQ-INST-10
2026-06-04T14:14:33.7309487Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T14:14:33.7311621Z - Required stages: impl, unit
2026-06-04T14:14:33.7312628Z 
2026-06-04T14:14:33.7313043Z ### REQ-INST-11
2026-06-04T14:14:33.7314653Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T14:14:33.7317164Z - Required stages: impl, unit
2026-06-04T14:14:33.7318126Z 
2026-06-04T14:14:33.7318556Z ### REQ-INST-12
2026-06-04T14:14:33.7320906Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T14:14:33.7323581Z - Required stages: impl, unit
2026-06-04T14:14:33.7324603Z 
2026-06-04T14:14:33.7325068Z ### REQ-INST-13
2026-06-04T14:14:33.7326616Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T14:14:33.7328644Z - Required stages: impl, unit
2026-06-04T14:14:33.7329713Z 
2026-06-04T14:14:33.7330135Z ### REQ-INST-14
2026-06-04T14:14:33.7332691Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T14:14:33.7335953Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7336851Z 
2026-06-04T14:14:33.7337258Z ### REQ-INST-15
2026-06-04T14:14:33.7342186Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T14:14:33.7347862Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7348756Z 
2026-06-04T14:14:33.7349228Z ### REQ-REACH-1
2026-06-04T14:14:33.7350479Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T14:14:33.7358717Z - Required stages: impl, unit
2026-06-04T14:14:33.7360375Z 
2026-06-04T14:14:33.7360900Z ### REQ-REACH-2
2026-06-04T14:14:33.7362378Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T14:14:33.7364698Z - Required stages: 
2026-06-04T14:14:33.7365369Z 
2026-06-04T14:14:33.7365780Z ### REQ-MSG-1
2026-06-04T14:14:33.7368759Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T14:14:33.7372856Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7373769Z 
2026-06-04T14:14:33.7374171Z ### REQ-MSG-2
2026-06-04T14:14:33.7376055Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T14:14:33.7378543Z - Required stages: impl, unit
2026-06-04T14:14:33.7379864Z 
2026-06-04T14:14:33.7380276Z ### REQ-MSG-3
2026-06-04T14:14:33.7382836Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T14:14:33.7386128Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7387031Z 
2026-06-04T14:14:33.7387463Z ### REQ-NODE-IDENTITY
2026-06-04T14:14:33.7389243Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T14:14:33.7391490Z - Required stages: impl, unit
2026-06-04T14:14:33.7392329Z 
2026-06-04T14:14:33.7392742Z ### REQ-NET-1
2026-06-04T14:14:33.7394162Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T14:14:33.7396087Z - Required stages: impl, unit
2026-06-04T14:14:33.7396907Z 
2026-06-04T14:14:33.7397316Z ### REQ-NET-2
2026-06-04T14:14:33.7398705Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T14:14:33.7400612Z - Required stages: impl
2026-06-04T14:14:33.7401360Z 
2026-06-04T14:14:33.7401762Z ### REQ-NET-3
2026-06-04T14:14:33.7403089Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T14:14:33.7404875Z - Required stages: impl, unit
2026-06-04T14:14:33.7405703Z 
2026-06-04T14:14:33.7406121Z ### REQ-PAIR-1
2026-06-04T14:14:33.7407180Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T14:14:33.7408540Z - Required stages: impl, unit
2026-06-04T14:14:33.7409411Z 
2026-06-04T14:14:33.7409832Z ### REQ-PAIR-2
2026-06-04T14:14:33.7411756Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T14:14:33.7413499Z - Required stages: impl, unit
2026-06-04T14:14:33.7414337Z 
2026-06-04T14:14:33.7414759Z ### REQ-PAIR-3
2026-06-04T14:14:33.7416008Z - Title: Fetch current pairing code from any paired node
2026-06-04T14:14:33.7417659Z - Required stages: impl, unit
2026-06-04T14:14:33.7418490Z 
2026-06-04T14:14:33.7418907Z ### REQ-PAIR-4
2026-06-04T14:14:33.7420325Z - Title: Subnet naming on first pairing
2026-06-04T14:14:33.7421739Z - Required stages: impl, unit
2026-06-04T14:14:33.7422582Z 
2026-06-04T14:14:33.7422991Z ### REQ-PAIR-5
2026-06-04T14:14:33.7425112Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T14:14:33.7428105Z - Required stages: impl, unit
2026-06-04T14:14:33.7428961Z 
2026-06-04T14:14:33.7429595Z ### REQ-PAIR-6
2026-06-04T14:14:33.7431463Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T14:14:33.7433929Z - Required stages: impl, unit
2026-06-04T14:14:33.7434761Z 
2026-06-04T14:14:33.7435167Z ### REQ-PAIR-7
2026-06-04T14:14:33.7436496Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T14:14:33.7438240Z - Required stages: 
2026-06-04T14:14:33.7438893Z 
2026-06-04T14:14:33.7439504Z ### REQ-SEC-1
2026-06-04T14:14:33.7442331Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T14:14:33.7445714Z - Required stages: impl, unit
2026-06-04T14:14:33.7446547Z 
2026-06-04T14:14:33.7446953Z ### REQ-NOTIF-1
2026-06-04T14:14:33.7449468Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T14:14:33.7452639Z - Required stages: impl, unit
2026-06-04T14:14:33.7453466Z 
2026-06-04T14:14:33.7453881Z ### REQ-NOTIF-2
2026-06-04T14:14:33.7455800Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T14:14:33.7458329Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7459257Z 
2026-06-04T14:14:33.7459667Z ### REQ-UPD-1
2026-06-04T14:14:33.7460747Z - Title: Peer-propagated update over P2P
2026-06-04T14:14:33.7462204Z - Required stages: impl, unit
2026-06-04T14:14:33.7463039Z 
2026-06-04T14:14:33.7463455Z ### REQ-UPD-2
2026-06-04T14:14:33.7464664Z - Title: All binaries signature-verified before handoff
2026-06-04T14:14:33.7466302Z - Required stages: impl, unit
2026-06-04T14:14:33.7467337Z 
2026-06-04T14:14:33.7467755Z ### REQ-UPD-3
2026-06-04T14:14:33.7469132Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T14:14:33.7471057Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7471955Z 
2026-06-04T14:14:33.7472354Z ### REQ-UPD-4
2026-06-04T14:14:33.7473783Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T14:14:33.7475705Z - Required stages: impl, unit
2026-06-04T14:14:33.7476537Z 
2026-06-04T14:14:33.7476948Z ### REQ-UPD-5
2026-06-04T14:14:33.7478135Z - Title: spt-core ripple-updates registered adapters
2026-06-04T14:14:33.7479786Z - Required stages: impl, unit
2026-06-04T14:14:33.7480624Z 
2026-06-04T14:14:33.7481036Z ### REQ-TERM-1
2026-06-04T14:14:33.7482401Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T14:14:33.7484248Z - Required stages: impl, unit
2026-06-04T14:14:33.7485088Z 
2026-06-04T14:14:33.7485502Z ### REQ-TERM-2
2026-06-04T14:14:33.7486934Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T14:14:33.7488851Z - Required stages: impl, unit
2026-06-04T14:14:33.7489717Z 
2026-06-04T14:14:33.7490123Z ### REQ-TERM-3
2026-06-04T14:14:33.7491319Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T14:14:33.7492921Z - Required stages: impl, unit
2026-06-04T14:14:33.7493747Z 
2026-06-04T14:14:33.7494162Z ### REQ-TERM-4
2026-06-04T14:14:33.7496609Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T14:14:33.7504932Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7506012Z 
2026-06-04T14:14:33.7506461Z ### REQ-FRONT-1
2026-06-04T14:14:33.7507863Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T14:14:33.7509821Z - Required stages: 
2026-06-04T14:14:33.7510486Z 
2026-06-04T14:14:33.7510903Z ### REQ-INSTALL-1
2026-06-04T14:14:33.7512439Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T14:14:33.7514865Z - Required stages: 
2026-06-04T14:14:33.7515536Z 
2026-06-04T14:14:33.7516113Z ### REQ-INSTALL-2
2026-06-04T14:14:33.7517558Z - Title: Marketplace-repackaging-friendly install
2026-06-04T14:14:33.7519124Z - Required stages: 
2026-06-04T14:14:33.7519832Z 
2026-06-04T14:14:33.7520245Z ### REQ-INSTALL-3
2026-06-04T14:14:33.7521481Z - Title: Idempotent + interactive-optional first run
2026-06-04T14:14:33.7523060Z - Required stages: 
2026-06-04T14:14:33.7523742Z 
2026-06-04T14:14:33.7524166Z ### REQ-INSTALL-4
2026-06-04T14:14:33.7528221Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T14:14:33.7533272Z - Required stages: 
2026-06-04T14:14:33.7533937Z 
2026-06-04T14:14:33.7534351Z ### REQ-MIGRATE-1
2026-06-04T14:14:33.7535734Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T14:14:33.7537530Z - Required stages: 
2026-06-04T14:14:33.7538197Z 
2026-06-04T14:14:33.7538614Z ### REQ-INFRA-1
2026-06-04T14:14:33.7540084Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T14:14:33.7541970Z - Required stages: 
2026-06-04T14:14:33.7542621Z 
2026-06-04T14:14:33.7543037Z ### REQ-DOCS-1
2026-06-04T14:14:33.7544557Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T14:14:33.7546561Z - Required stages: 
2026-06-04T14:14:33.7547219Z 
2026-06-04T14:14:33.7547625Z ### REQ-DOCS-2
2026-06-04T14:14:33.7548953Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T14:14:33.7550709Z - Required stages: 
2026-06-04T14:14:33.7551366Z 
2026-06-04T14:14:33.7551772Z ### REQ-DOCS-3
2026-06-04T14:14:33.7553334Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T14:14:33.7554923Z - Required stages: 
2026-06-04T14:14:33.7555587Z 
2026-06-04T14:14:33.7555986Z ### REQ-DOCS-4
2026-06-04T14:14:33.7557805Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T14:14:33.7559878Z - Required stages: 
2026-06-04T14:14:33.7560563Z 
2026-06-04T14:14:33.7561003Z ### REQ-DOCS-5
2026-06-04T14:14:33.7562499Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T14:14:33.7564460Z - Required stages: 
2026-06-04T14:14:33.7565127Z 
2026-06-04T14:14:33.7565614Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T14:14:33.7567433Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T14:14:33.7569441Z - Required stages: impl, unit
2026-06-04T14:14:33.7570286Z 
2026-06-04T14:14:33.7570777Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T14:14:33.7572356Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T14:14:33.7574050Z - Required stages: impl, unit
2026-06-04T14:14:33.7574873Z 
2026-06-04T14:14:33.7575358Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T14:14:33.7576774Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T14:14:33.7578319Z - Required stages: 
2026-06-04T14:14:33.7578979Z 
2026-06-04T14:14:33.7579493Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T14:14:33.7581187Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T14:14:33.7583683Z - Required stages: impl, unit
2026-06-04T14:14:33.7584550Z 
2026-06-04T14:14:33.7585043Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T14:14:33.7586712Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T14:14:33.7588899Z - Required stages: impl, unit
2026-06-04T14:14:33.7589935Z 
2026-06-04T14:14:33.7590434Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T14:14:33.7592193Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T14:14:33.7594154Z - Required stages: 
2026-06-04T14:14:33.7594805Z 
2026-06-04T14:14:33.7595283Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T14:14:33.7596706Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T14:14:33.7598251Z - Required stages: 
2026-06-04T14:14:33.7598926Z 
2026-06-04T14:14:33.7599641Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T14:14:33.7601357Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T14:14:33.7603217Z - Required stages: impl, unit
2026-06-04T14:14:33.7604072Z 
2026-06-04T14:14:33.7604559Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T14:14:33.7606243Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T14:14:33.7607909Z - Required stages: impl, int
2026-06-04T14:14:33.7608720Z 
2026-06-04T14:14:33.7609251Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T14:14:33.7610863Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T14:14:33.7612636Z - Required stages: impl, unit
2026-06-04T14:14:33.7613463Z 
2026-06-04T14:14:33.7613970Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T14:14:33.7615703Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T14:14:33.7617512Z - Required stages: impl, unit
2026-06-04T14:14:33.7618334Z 
2026-06-04T14:14:33.7618848Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T14:14:33.7620659Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T14:14:33.7622634Z - Required stages: impl, unit
2026-06-04T14:14:33.7623463Z 
2026-06-04T14:14:33.7623965Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T14:14:33.7625626Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T14:14:33.7627360Z - Required stages: impl, unit
2026-06-04T14:14:33.7628181Z 
2026-06-04T14:14:33.7628699Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T14:14:33.7630469Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T14:14:33.7630928Z - Required stages: impl, unit
2026-06-04T14:14:33.7630948Z 
2026-06-04T14:14:33.7631449Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T14:14:33.7632476Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T14:14:33.7632934Z - Required stages: impl, unit
2026-06-04T14:14:33.7632950Z 
2026-06-04T14:14:33.7633587Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T14:14:33.7634800Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T14:14:33.7635276Z - Required stages: impl, unit
2026-06-04T14:14:33.7635294Z 
2026-06-04T14:14:33.7640805Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T14:14:33.7641889Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T14:14:33.7642360Z - Required stages: impl, unit
2026-06-04T14:14:33.7642404Z 
2026-06-04T14:14:33.7642887Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T14:14:33.7644148Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T14:14:33.7644620Z - Required stages: impl, unit
2026-06-04T14:14:33.7644638Z 
2026-06-04T14:14:33.7645139Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T14:14:33.7646997Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T14:14:33.7647506Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7647533Z 
2026-06-04T14:14:33.7648517Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T14:14:33.7650907Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T14:14:33.7651430Z - Required stages: impl, unit
2026-06-04T14:14:33.7651460Z 
2026-06-04T14:14:33.7651981Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T14:14:33.7652838Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T14:14:33.7653318Z - Required stages: impl, unit
2026-06-04T14:14:33.7653346Z 
2026-06-04T14:14:33.7653867Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T14:14:33.7654521Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T14:14:33.7655016Z - Required stages: impl, unit
2026-06-04T14:14:33.7655037Z 
2026-06-04T14:14:33.7655554Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T14:14:33.7656321Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T14:14:33.7656841Z - Required stages: impl, unit
2026-06-04T14:14:33.7656860Z 
2026-06-04T14:14:33.7657358Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T14:14:33.7658204Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T14:14:33.7658722Z - Required stages: impl, unit
2026-06-04T14:14:33.7658750Z 
2026-06-04T14:14:33.7659518Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T14:14:33.7660318Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T14:14:33.7661173Z - Required stages: impl, unit
2026-06-04T14:14:33.7661202Z 
2026-06-04T14:14:33.7661850Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T14:14:33.7662772Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T14:14:33.7663453Z - Required stages: impl, unit
2026-06-04T14:14:33.7663480Z 
2026-06-04T14:14:33.7682013Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T14:14:33.7683115Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T14:14:33.7683579Z - Required stages: impl, unit
2026-06-04T14:14:33.7683654Z 
2026-06-04T14:14:33.7684124Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T14:14:33.7685121Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T14:14:33.7685584Z - Required stages: impl, unit
2026-06-04T14:14:33.7685602Z 
2026-06-04T14:14:33.7686100Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T14:14:33.7686957Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T14:14:33.7687429Z - Required stages: impl, unit
2026-06-04T14:14:33.7687459Z 
2026-06-04T14:14:33.7687989Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T14:14:33.7688682Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T14:14:33.7689146Z - Required stages: impl, unit
2026-06-04T14:14:33.7689226Z 
2026-06-04T14:14:33.7689748Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T14:14:33.7690907Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T14:14:33.7691378Z - Required stages: impl, unit
2026-06-04T14:14:33.7691885Z 
2026-06-04T14:14:33.7692429Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T14:14:33.7695975Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T14:14:33.7696434Z - Required stages: impl, unit
2026-06-04T14:14:33.7696452Z 
2026-06-04T14:14:33.7696909Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T14:14:33.7698054Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T14:14:33.7698516Z - Required stages: impl, unit
2026-06-04T14:14:33.7698534Z 
2026-06-04T14:14:33.7699012Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T14:14:33.7700178Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T14:14:33.7700650Z - Required stages: impl, unit
2026-06-04T14:14:33.7700667Z 
2026-06-04T14:14:33.7701163Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T14:14:33.7702619Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T14:14:33.7703107Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7703125Z 
2026-06-04T14:14:33.7703595Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T14:14:33.7705027Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T14:14:33.7705497Z - Required stages: impl, unit
2026-06-04T14:14:33.7705515Z 
2026-06-04T14:14:33.7706216Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T14:14:33.7708773Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T14:14:33.7709292Z - Required stages: impl, unit, int
2026-06-04T14:14:33.7709322Z 
2026-06-04T14:14:33.7709833Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T14:14:33.7714631Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T14:14:33.7715121Z - Required stages: impl, unit
2026-06-04T14:14:33.7715138Z 
2026-06-04T14:14:33.7715666Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T14:14:33.7719838Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T14:14:33.7720285Z - Required stages: 
2026-06-04T14:14:33.7720301Z 
2026-06-04T14:14:33.7720821Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T14:14:33.7724498Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T14:14:33.7724988Z - Required stages: impl, unit
2026-06-04T14:14:33.7725019Z 
2026-06-04T14:14:33.7725521Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T14:14:33.7728836Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T14:14:33.7729343Z - Required stages: impl, unit
2026-06-04T14:14:33.7729361Z 
2026-06-04T14:14:33.7729855Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T14:14:33.7734934Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T14:14:33.7735427Z - Required stages: impl, unit
2026-06-04T14:14:33.7735446Z 
2026-06-04T14:14:33.7735914Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T14:14:33.7740552Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T14:14:33.7741231Z - Required stages: doc, impl, unit
2026-06-04T14:14:33.7741252Z 
2026-06-04T14:14:33.7741668Z ## How to report back
2026-06-04T14:14:33.7741686Z 
2026-06-04T14:14:33.7742553Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T14:14:33.7742587Z 
2026-06-04T14:14:33.7742976Z     {
2026-06-04T14:14:33.7743443Z       "code": "requirement_quality",
2026-06-04T14:14:33.7743916Z       "requirementId": "REQ-...",
2026-06-04T14:14:33.7744769Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T14:14:33.7745239Z       "message": "<short reason>",
2026-06-04T14:14:33.7745788Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T14:14:33.7746180Z     }
2026-06-04T14:14:33.7746199Z 
2026-06-04T14:14:33.7747184Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T14:14:33.7747888Z deterministic findings above don't need to be repeated.
